/*
 * @文件描述: 示波器的presenter层
 * @版本: 
 * @作者: 周晨阳
 * @Date: 2021-01-20 13:58:45
 */
#include "OscilloscopePre.h"
#include "oscilloscope.h"
#include "OscilloscopeUICodes.h"
#include "measureWindowUI.h"
/****************以下为view层调用**********************/
/**
 * @brief : 增加采样率（更改水平时基）
 * @param {*}
 * @return {*}
 */
void M_IncreaseSamplingRate(void)
{
    if (getOscilHoriScale() > 1)
    {
        setOscilH_Scale(getOscilHoriScale() - 1);
    }
}
/**
 * @brief : 减小采样率（更改水平时基）
 * @param {*}
 * @return {*}
 */
void M_DecreaseSamplingRate(void)
{
    if (getOscilHoriScale() < H_SCALE_CNT)
        setOscilH_Scale(getOscilHoriScale() + 1);
}

void M_IncreaseV_Scale(void)
{
    setOscilV_Scale(getOscilVertiScale() + 1);
}
void M_DecreaseV_Scale(void)
{
    setOscilV_Scale(getOscilVertiScale() - 1);
}
void M_Function(unsigned char function, unsigned char param)
{
}
void M_Auto(void)
{
    autoMeasure();
}
void M_Run_Stop(void)
{
    holdTrigger();
}
void M_changeTirggerType(void)
{
    // if()
}
/****************以下为model层调用**********************/
/**
 * @brief : 设置view中的水平时基数值
 * @param {constchar} *str
 * @return {*}
 */
void V_setH_Scale(const char *str)
{
    onViewSetH_Scale(str);
}
/**
 * @brief : 设置view中的垂直时基数值
 * @param {constchar} *str
 * @return {*}
 */
void V_setV_Scale(const char *str)
{
    onViewsetV_Scale(str);
}

void V_setGraph(GUI_POINT *data, unsigned int size)
{
    onViewSetGraph(data, size);
}

void V_OscillUI_Init(void)
{
    onViewOscillUI_Init();
}
 void V_drawOscilGraph(void)
{
#ifdef GUI_UCGUI
    onViewdrawGraph(NULL);
#endif
}
void V_setGraphSize(int size)
{
    onViewSetGraphSize(size);
}

// void V_showCursor(unsigned char which)
// {
//     onViewShowCursor(which);
// }
// void V_hideCursor(unsigned char which)
// {
//     onViewHideCursor(which);
// }
// void V_setCursorPos(unsigned char which, unsigned int posX)
// {
//     onViewSetCursorPos(which, posX);
// }
void V_setState(unsigned char state)
{
    onViewSetHoldState(state);
}

void V_setOscillDataList(OscillInfo *list)
{
    onViewSetOscillDataList(list);
}
void V_setV_arrowPos(int pos)
{
    onViewSetV_Offset(pos);
}
void V_setH_arrowPos(int pos)
{
    onViewSetH_Offset(pos);
}
void V_setTrigger(uint8_t triggerType, float voltage)
{
    onViewSetTriggerType(triggerType);
    onViewSetTriggerVoltage(voltage);
}

void V_setTriggerState(uint8_t state)
{
    onViewSetTriggerState(state);
}
void V_setMenuInfo(MenuInfo *m, uint8_t itemCnt)
{
    onViewSetMenuInfo(m, itemCnt);
}
void V_setCursor(Cursor *c)
{
    onViewSetCursor(c);
}
void V_setWaveWinInfo(float width, int pos)
{
    onViewSetWaveWinInfo(width, pos);
}
void V_setCursorListInfo(OscillInfo *p)
{
    onViewSetCursorListInfo(p);
}
/**
 * @brief : 显示提示框，并在数秒后自动消失
 * @param {char} *
 * @param {uint8_t} sec
 * @return {*}
 */
void V_showToastInfo(char *info, uint8_t sec)
{
}